import { ShopDesign, ShopDesignTab } from '../../../../model/shop';

/**
 * @name 模板使用后执行的操作
 * 1 读取模板数据
 * 2 复制并插入模板引用的页面记录
 * 2.1 替换页面中的部分组件的 value 使用商户自己的数据 如 shop_id，shop_name 等等
 * 3 为商户创建 shop_design 记录 并将 tabs 替换成新的 page_id
 * 4 保存
 */

/**
 * @name 问题-模板使用后，商户本身没有对应的分类、商品、文章数据
 * @method 自动创建测试数据，系统中创建通用的分类、商品数据，使用模板后，自动创建商品和分类数据
 */

/**
 * @name 问题-模板使用后升级后的问题
 * @method 自动获取原模板数据，转移到新的模板中，前提是每个组件都要有唯一的key，因为index是可变的
 */

/**
 * @name 问题-模板预览
 */

export interface ITemplate {
  _id?: string;

  title?: string;
  /** 分类ID */
  tag_id?: number;
  /** 分类IDS用于多选 */
  tag_ids?: number[];
  /** 装修模板数据的商户ID */
  shop_id?: number;
  /** 预览图 */
  pic?: string[];
  desc?: string;
  /** 预览图背景色 */
  color?: string;

  create_time?: number;
  update_time?: number;
}

/**
 * 模板数据
 * 继承自 ShopDesign 用于存储首页排版 Tabs 底栏样式 等等 仅仅用于存储
 */
export interface ITemplateShopDesign {
  tabs: ShopDesignTab[];
  page_ids?: string;
  tab_style: ShopDesign['tab_style'];
}

/**
 * Mongodb Schema
 */
export const SchemaTemplate = {
  title: String,
  tag_id: Number,
  tag_ids: Array,
  shop_id: Number,
  pic: Array,
  color: String,
  desc: String,
  create_time: Number,
  update_time: Number,
};
